settings: Change gtk-cursor-aspect-ratio from float to double
authorSebastian Keller <skeller@gnome.org>
Wed, 16 Dec 2020 19:57:31 +0000 (20:57 +0100)
committerSebastian Keller <skeller@gnome.org>
Wed, 16 Dec 2020 21:35:36 +0000 (22:35 +0100)
Float properties can not be read from keyfiles. This was causing changes
to this property in settings.ini to be ignored. Fix this by changing it
to a double.

Technically this change could be considered an API break, but there are
no users of this property as float yet and it is early enough to expect
there to never be any.

Also document this change in the 3 to 4 migration guide since in gtk 3
this setting will be kept a float.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3441

docs/reference/gtk/migrating-3to4.md
gtk/gtksettings.c
gtk/gtkstylecontext.c

index 461be381974d3fd50f84b3ce1d882a15bde8fa34..a8ba76e557545d6728d3f2d359ab7219b430a201 100644 (file)
@@ -1157,6 +1157,11 @@ shows a #GtkFileChooserNative dialog when clicked; once the file selection
 has completed, you can update the label of the #GtkButton with the selected
 file.
 
+### Adapt to changed GtkSettings properties
+
+In GTK 3 the #GtkSettings:gtk-cursor-aspect-ratio property of #GtkSettings was
+a float. In GTK 4 this has been changed to a double.
+
 ## Changes to consider after the switch
 
 GTK 4 has a number of new features that you may want to take
index 6345550a7372cabacee9deb45451fb3f4ef1c29e..595e7a18106ae84ba248f9f7501ebd6e9eede9b3 100644 (file)
@@ -386,11 +386,11 @@ gtk_settings_class_init (GtkSettingsClass *class)
   g_assert (result == PROP_SPLIT_CURSOR);
 
   result = settings_install_property_parser (class,
-                                             g_param_spec_float ("gtk-cursor-aspect-ratio",
-                                                                 P_("Cursor Aspect Ratio"),
-                                                                 P_("The aspect ratio of the text caret"),
-                                                                 0.0, 1.0, 0.04,
-                                                                 GTK_PARAM_READWRITE));
+                                             g_param_spec_double ("gtk-cursor-aspect-ratio",
+                                                                  P_("Cursor Aspect Ratio"),
+                                                                  P_("The aspect ratio of the text caret"),
+                                                                  0.0, 1.0, 0.04,
+                                                                  GTK_PARAM_READWRITE));
   g_assert (result == PROP_CURSOR_ASPECT_RATIO);
 
   result = settings_install_property_parser (class,
index 598c255722535d58b350cb7b78eeb6cc58d1ffb5..71f4750252a169e8830ecdca3873dd0572c32ee4 100644 (file)
@@ -969,7 +969,7 @@ draw_insertion_cursor (GtkStyleContext *context,
                        double           x,
                        double           y,
                        double           height,
-                       float            aspect_ratio,
+                       double           aspect_ratio,
                        gboolean         is_primary,
                        PangoDirection   direction,
                        gboolean         draw_arrow)
@@ -1032,7 +1032,7 @@ draw_insertion_cursor (GtkStyleContext *context,
 
 static void
 get_insertion_cursor_bounds (double           height,
-                             float            aspect_ratio,
+                             double           aspect_ratio,
                              PangoDirection   direction,
                              gboolean         draw_arrow,
                              graphene_rect_t *bounds)
@@ -1073,7 +1073,7 @@ static void
 snapshot_insertion_cursor (GtkSnapshot     *snapshot,
                            GtkStyleContext *context,
                            double           height,
-                           float            aspect_ratio,
+                           double           aspect_ratio,
                            gboolean         is_primary,
                            PangoDirection   direction,
                            gboolean         draw_arrow)
@@ -1136,7 +1136,7 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot     *snapshot,
 {
   GtkStyleContextPrivate *priv = gtk_style_context_get_instance_private (context);
   gboolean split_cursor;
-  float aspect_ratio;
+  double aspect_ratio;
   PangoRectangle strong_pos, weak_pos;
   PangoRectangle *cursor1, *cursor2;
   GdkSeat *seat;